<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>手写push方法</title>
  </head>
  <body>
    <script>
      var arr = [1, 2, 3, 5, 2.4, -1, 8];
      Array.prototype.push = function () {
        console.log("arguments", arguments); // push函数的传递过来的参数
        console.log("this", this); // this指向arr
        for (var i = 0; i < arguments.length; i++) {
          this[this.length] = arguments[i];
        }
        return this.length;
      };
      arr.push(...[26,28,1])
      console.log('arr',arr)
      // pop()// 从最后一位剪切，不支持传参数
      // shift()// 在数组首位添加
      // unshift()// 在数组前面剪切，顺序是从右到左
      // reverse() // 逆转顺序
      // arr.splice(从第几位开始, 截取多少长度, 在切口处添加新的数据)
      // arr.splice(3,0,4) // arr=[1,2,3,4,5]
      // sort() 给数组排序 可以传一个函数 ，也可以把有序数组乱序，用math.random方法
      // console.log(arr.sort())
      var arr1 = [1, 3, 5, 4, 10];
      arr1.sort(function (a, b) {
        //1.必须写俩形参
        // 2.返回值为负数，前面的数放在前面，为正数，后面的数在前，。为0不动
        return a - b; // 升序
        // return b- a // 降序
      });
      console.log('arr1', arr1) // 1 3 4 5 10
    </script>
  </body>
</html>
